#!/usr/bin/env python
# -*- coding: utf-8 -*-

# @Time     :2020/09/20
# @Author   :Changshu
# @File     :practice_137.py

# 给定一个非空整数数组，除了某个元素只出现一次以外，其余每个元素均出现了三次。找出那个只出现了一次的元素。
#
# 说明：
#
# 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗？

# 使用set，保证元素不重复 从而实现 3*(a+b+c)-(a+a+a+b+b+b+c) 的效果
# def singleNumber(nums: list) -> int:
# 	return (3*sum(set(nums))-sum(nums))//2

from collections import Counter
def singleNumber(nums: list) -> int:
	hashmap=Counter(nums)

	for key in hashmap.keys():
		if hashmap[key]==1:
			return key


if __name__ == '__main__':
	nums=[0,1,0,1,0,1,99]
	s=singleNumber(nums)
	print(s)